Необходимая информация
- Работа в .NET 2.0.
- Код находится в общей библиотеке, которая может быть вызвана из ASP.Net, Windows Forms или приложения консоли.
- Работа в домене Windows в корпоративной сети.
Вопрос
Каков наилучший способ получить SID текущего пользователя? Я не говорю о том, что выполняется приложение, но пользователь, который обращается к интерфейсу. В фоновых приложениях и на настольных системах это должно быть тождество, выполняющее приложение, но в ASP.Net(без наведения) это должен быть идентификатор SID HttpContext.Current.User.
Текущий метод
Вот что я получил прямо сейчас. Просто кажется... неправильно. Это неприятно. Есть ли лучший способ сделать это или какой-либо встроенный класс, который делает это для вас?
public static SecurityIdentifier SID
{
get
{
WindowsIdentity identity = null;
if (HttpContext.Current == null)
{
identity = WindowsIdentity.GetCurrent();
}
else
{
identity = HttpContext.Current.User.Identity as WindowsIdentity;
}
return identity.User;
}
}