我使用HttpContext.Current.User.Identity.Name获取登录用户的用户名。我想知道这是如何工作的(使用NTLM v2/Kerberos)以及它有多安全?用户可以尝试模仿他是其他人吗?HttpContext.Current.User.Identity.Name如何工作?它有多安全?
基本上,从安全的角度来看,有什么我应该担心的,还是应该如何改进呢?
我使用HttpContext.Current.User.Identity.Name获取登录用户的用户名。我想知道这是如何工作的(使用NTLM v2/Kerberos)以及它有多安全?用户可以尝试模仿他是其他人吗?HttpContext.Current.User.Identity.Name如何工作?它有多安全?
基本上,从安全的角度来看,有什么我应该担心的,还是应该如何改进呢?
如果您使用的是Windows身份验证(假定你的NTLM/Kerberos的提及看来你是),那么会发生什么情况(大致)如下
它很安全。它基本上与通过文件共享或其他使用kerberos的其他任何服务器连接到Windows服务器时使用的身份验证类型基本相同。实际上,IIS和Windows本身是做大部分工作的,ASP.NET只是给你一个查询结果的好方法。
User.Identity.Name与使用Forms Authentication时一样安全吗? –
你可以绝对肯定它!一旦用户通过身份验证(并且它可能是安全问题),那么该属性是完全安全的。你可以改进/选择的是认证方法,密码强度,http(非 - )嗅探和类似的东西。 –
@Adriano - 我的应用程序正在使用HTTPS。身份验证方法仅在Windows登录时完成,而不是与应用程序有关,这是正确的吗? 有没有关于这个问题的任何微软引用? –
你使用Windows身份验证?那么它应该足够安全(而弱部分是Windows用户用来登录的密码)。根本不用担心User.Identity,它很安全。安全问题将更容易来自我们编写的代码(以及用户将选择的密码),而不是来自“基础架构”和经过良好测试的代码。 –