我想知道是否有可能通过官方方式或黑客检索当前登录到具有“允许匿名用户”选项的asp网页的用户的Windows登录?或者使用导入的windows dll?
我知道通常使用“拒绝匿名用户”我可以轻松检索登录窗口。但由于某些特殊原因,我想检索Windows登录并接受匿名用户。因此,如果Windows登录是我的数据库中的用户,我会重定向到另一个网页。
我已经知道:(但是windowsLogin ==总是空的)
ASP-C#
string windowsLogin = System.Security.Principal.WindowsPrincipal.Current.Identity.Name;
string windowsLogin = System.Threading.Thread.CurrentPrincipal.Identity.Name;
string windowsLogin = System.Net.CredentialCache.DefaultCredentials.ToString();
string windowsLogin = Request.ServerVariables["LOGON_USER"].ToString();
的Web.config
<authorization>
<deny users ="?" /><!-- Deny acces to anonymous users-->
<allow users ="*" /><!-- Allow acces to every users-->
</authorization>
<identity impersonate="true"/>
<authentication mode="Forms">
<forms loginUrl="./WebLogin.aspx" defaultUrl="./default.aspx" timeout="12" path="/" name=".ASPXFORMSAUTH" slidingExpiration="true" />
</authentication>
答案 0 :(得分:0)
您似乎需要允许匿名用户,并且您可能希望尝试Windows身份验证。
<authorization>
<allow users ="*" /><!-- Allow acces to every user and do not deny anonymous -->
</authorization>
<authentication mode="Windows" />
在某些情况下,似乎已为C#折旧ServerVariables。
如果是这样,你需要这样做:
string login = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
如果您真的想使用ServerVariables,请记住它们在C#中是 CaSe Sensitive 。正确的套管几乎总是 UPPER ,以下是它们的列表: