我正在尝试检查用户是否属于数据库中某人的好友列表,并相应地重定向他。
我在Global Asax调用的路由器中执行此操作。
我只想知道如何在路由处理程序类(或全局asax)中获取用户名(来自登录信息)
我用过这个:
string username = HttpContext.Current.User.Identity.Name;
非常奇怪的是,它将“.aspx”指定为用户名!!
ps:我确实搜索过类似的问题但是徒劳无功。对不起,如果我彻底搜索它。
答案 0 :(得分:4)
它应该有效...必须是您的身份验证方法中的内容。
你如何设置它?
看起来您自己正在进行身份验证并从错误的服务器变量中分配标识
答案 1 :(得分:3)
global.asax Session_Start在会话启动时被调用,也就是说,当浏览器访问您的站点时。浏览器用户此时通常没有登录,因此不会有任何HttpContext.Current.User.Identity.Name供您抓取。你应该得到一个空字符串。
如果用户已经过身份验证并且会话由于某种原因重新启动,例如,如果您退回服务器或会话超时短于您的身份验证超时,则会出现例外情况。但在一般情况下,序列必须是:
所以你的问题的答案是:“在一般情况下,你不能”。
答案 2 :(得分:2)
检查您的web.config文件并查找该部分,并确保将身份验证模式设置为windows,如下所示:
<authentication mode="Windows"></authentication>