asp.net-mvc – HttpContext中需要什么来允许FormsAuthenticatio
发布时间:2020-12-15 22:58:39 所属栏目:asp.Net 来源:网络整理
导读:我正在为我们的注销方法写一个单元测试.其中包括FormsAuthentication.SignOut().但是,它会抛出一个System.NullReferenceException. 我创造了一个模拟; HttpContext(使用Moq),但它显然是丢失的东西. 我的模拟环境包含: 一个嘲笑的HttpRequestBase请求 一个嘲
我正在为我们的注销方法写一个单元测试.其中包括FormsAuthentication.SignOut().但是,它会抛出一个System.NullReferenceException.
我创造了一个模拟; HttpContext(使用Moq),但它显然是丢失的东西. 我的模拟环境包含: >一个嘲笑的HttpRequestBase请求 我知道我可以去包装路线,并在它的地方注入一个空的FormsAuth包装器对象,但我真的希望避免3个额外的文件只是为了修复一行代码.那我还是好奇的答案 所以我的问题是“HttpContext允许FormsAuthentication.SignOut()执行需要什么.” 解决方法
以下是注销代码.
public static void SignOut() { Initialize(); HttpContext current = HttpContext.Current; bool flag = current.CookielessHelper.DoesCookieValueExistInOriginal('F'); current.CookielessHelper.SetCookieValue('F',null); if (!CookielessHelperClass.UseCookieless(current,false,CookieMode) || current.Request.Browser.Cookies) { string str = string.Empty; if (current.Request.Browser["supportsEmptyStringInCookieValue"] == "false") { str = "NoCookie"; } HttpCookie cookie = new HttpCookie(FormsCookieName,str); cookie.HttpOnly = true; cookie.Path = _FormsCookiePath; cookie.Expires = new DateTime(0x7cf,10,12); cookie.Secure = _RequireSSL; if (_CookieDomain != null) { cookie.Domain = _CookieDomain; } current.Response.Cookies.RemoveCookie(FormsCookieName); current.Response.Cookies.Add(cookie); } if (flag) { current.Response.Redirect(GetLoginPage(null),false); } } 看起来你需要一个CookielessHelperClass实例.太糟糕了,它是内部和密封的 – 除非你使用TypeMock,否则没有办法模拟它. 1为包装建议:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Azure网站和ASP.NET,在应用程序池被回收导致
- asp.net-mvc – 用于Web.config的T4MVC
- 在ASP.NET C#中直接打印Crystal报表
- 如何从本地asp.net 4.0 Web应用程序发送支持图像的电子邮件
- ASP.NET文件上传:如何确保上传的文件真的是JPEG?
- asp.net-mvc – 绑定排除Asp.net MVC不适用于LINQ实体
- asp.net-mvc – 使用NHibernate,ASP.NET MVC和Dropdown
- asp.net – 奇怪的Javascript JSON未定义错误
- Task.Factory.StartNew在ASP.Net MVC中有帮助或有害吗?
- asp.net-mvc-4 – 如何使用ASP.NET MVC在Kendo UI Grid中实
推荐文章
站长推荐
热点阅读