我们所有的库和应用程序都使用表单身份验证,因此有必要在此处使用它。
该应用程序通过以下设置托管在IIS上:
这将使用户在IIS下运行(在我的情况下为IIS APPPOOL\tdm
)
string userName = System.Security.Principal.WindowsIdentity.GetCurrent();
string userName = Environment.UserName;
在web.config中:
<authentication mode="None" /> //(this again must not be changed)
是否可以通过某种方式获取使用该应用程序的用户的Windows凭据? 我的工作是当有人进入应用程序以自动使用此凭据登录时,为此,我必须找到一种方法来获取他的Windows用户帐户。
答案 0 :(得分:3)
我认为您所要求的在标准Webforms框架内是不可能的。如果不启用Windows身份验证,就无法自动使浏览器发送Windows凭据。
如果应用程序托管在同一域中,则使用具有现有AD用户名/密码(也称为“单一登录”)的标准表单身份验证相对容易。
在应用程序中启用Windows身份验证,然后从浏览器发出请求时,它实际上会返回401 - Unauthorized状态代码。然后,浏览器根据您的设置决定是否在第二个请求中发送您的身份。这可能会自动发生,或者可能提示您输入凭据。