Srb*_*711 34 c# asp.net httpcontext
这不一定是一个问题,我只是好奇它是如何工作的.我有一个方法:
public static bool UserIsAuthenticated()
{
bool isAuthed = false;
try
{
if (HttpContext.Current.User.Identity.Name != null)
{
if (HttpContext.Current.User.Identity.Name.Length != 0)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket ticket = id.Ticket;
isAuthed = true;
string MyUserData = ticket.UserData;
}
}
}
catch { } // not authed
return isAuthed;
}
Run Code Online (Sandbox Code Playgroud)
在HttpContext.Current.User.Identity.Name返回null如果用户不存在,但它是如何知道哪些用户名存在或不存在?
Anw*_*Haq 53
用于Windows身份验证
选择你的项目.
按F4
禁用"匿名身份验证"并启用"Windows身份验证"

Anu*_*ain 25
HttpContext.Current.User.Identity.Name返回null
这取决于您的web.config文件中的身份验证模式是设置为Forms还是Windows.
例如,如果我像这样编写身份验证:
<authentication mode="Forms"/>
Run Code Online (Sandbox Code Playgroud)
然后因为身份验证模式="表单",我将为用户名获取null.但是,如果我将身份验证模式更改为Windows,如下所示:
<authentication mode="Windows"/>
Run Code Online (Sandbox Code Playgroud)
我可以再次运行应用程序并检查用户名,我将成功获取用户名.
有关更多信息,请参见ASP.NET中的System.Web.HttpContext.Current.User.Identity.Name与System.Environment.UserName.
小智 5
假设一个“用户”(也就是您)必须登录的网络环境。通常这是一个用户 ID (UID) 和一个密码 (PW)。那么,你的身份是什么,或者你是谁?您是 UID,这会从您的登录会话中收集该“名称”。简单的!它也应该适用于需要您登录的 Internet 应用程序,例如 Best Buy 和其他应用程序。
当我打开需要使用的 Web 应用程序的默认页面时,这将从我的会话中提取我的 UID 或“名称”。现在,在我的实例中,我是域的一部分,所以我可以使用初始 Windows 身份验证,它需要验证我是谁,因此是代码的第二部分。至于表单身份验证,它将依赖于发送到您的工作站/计算机的票证(最有可能是 cookie)。代码如下所示:
string id = HttpContext.Current.User.Identity.Name;
// Strip the domain off of the result
id = id.Substring(id.LastIndexOf(@"\", StringComparison.InvariantCulture) + 1);
Run Code Online (Sandbox Code Playgroud)
现在它有了我的公司名称(又名 UID)并且可以在屏幕上显示它。
[HttpContext.Current.User] 如何知道哪些用户名存在或不存在?
让我们看一个这种工作方式的例子。假设您正在使用表单身份验证并且“OnAuthenticate”事件触发。此事件发生在“当应用程序验证当前请求时”(参考来源)。
到目前为止,应用程序不知道您是谁。
由于您使用窗体身份验证,通过分析验证cookie(通常它首先检查.ASPAUTH通过一个呼叫)ExtractTicketFromCookie。这个调用FormsAuthentication.Decrypt(这个方法是公开的;你可以自己调用这个!)。接下来,它调用Context.SetPrincipalNoDemand,将 cookie 转换为用户并将其填充到Context.User( Reference Source ) 中。
| 归档时间: |
|
| 查看次数: |
105425 次 |
| 最近记录: |