我已经阅读了以下文章http://msdn.microsoft.com/en-us/library/ff650307.aspx,关于如何从多个域验证asp.net mvc用户,所以在我的asp.net mvc中我做了以下内容: -
我在web.config中添加了以下内容: -
<system.web>
<membership>
<providers>
<add name="TestDomain1ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="TestDomain1ConnectionString" connectionUsername="ad-domainA.intra\it360ad.user" connectionPassword="$$$$$" />
</providers>
</membership>
&
<connectionStrings>
<add name="TestDomain1ConnectionString" connectionString="LDAP://ad-domainA.intra/CN=Users,DC=ad-domainA,DC=intra" />
我添加了以下Account.controller: -
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
MembershipProvider domainProvider;
domainProvider = Membership.Providers["TestDomain1ADMembershipProvider"];
// Validate the user with the membership system.
if (domainProvider.ValidateUser(model.UserName, model.Password))
{
if (Request.QueryString["ReturnUrl"] != null)
{
FormsAuthentication.RedirectFromLoginPage(
model.UserName, false);
}
else
{
// If there is no RequestUrl query string attribute, just set
// the authentication cookie. Provide navigation on the login page
// to pages that require authentication, or user can use browser
// to navigate to protected pages.
// Set second parameter to false so cookie is not persistent
// across sessions.
FormsAuthentication.SetAuthCookie(model.UserName, false);
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
return RedirectToLocal(returnUrl);
}
但是当我在登录界面中输入我的用户名和密码并点击回车时,我收到以下错误: -
System.Configuration.ConfigurationErrorsException未被用户代码处理HResult = -2146232062 Message =无法加载文件或程序集'System.Web,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一 . 该系统找不到指定的文件 . (C:\ Users \ john.john \ Desktop \ test login \ TMS \ TMS \ web.config第39行)Source = System.Web BareMessage =无法加载文件或程序集'System.Web,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a '或其中一个依赖项 . 该系统找不到指定的文件 . Filename = C:\ Users \ john.john \ Desktop \ test login \ TMS \ TMS \ web.config Line = 39 StackTrace:位于System.Web.Security.Membership.get_Providers的System.Web.Security.Membership.Initialize()处()InnerException:System.IO.FileNotFoundException HResult = -2147024894 Message =无法加载文件或程序集'System.Web,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一 . 该系统找不到指定的文件 . Source = mscorlib FileName = System.Web,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a FusionLog ====预绑定状态信息===日志:用户= AD-ITSERVICES \ john.john日志:DisplayName = System.Web,Culture =中性,PublicKeyToken = b03f5f7f11d50a3a(部分)WRN:为程序集提供了部分绑定信息:WRN:程序集名称:System.Web,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a |域ID:4 WRN:仅提供部分程序集显示名称时发生部分绑定 . 警告:这可能导致装订器装入错误的装配 . 警告:建议为程序集提供完全指定的文本标识,即WRN:由简单名称,版本,区域性和公钥标记组成 . 警告:有关此问题的更多信息和常见解决方案,请参阅白皮书http://go.microsoft.com/fwlink/?LinkId=109270 . 日志:Appbase = file:/// C:/Users/john.john/Desktop/test login / TMS / TMS / LOG:初始PrivatePath = C:\ Users \ john.john \ Desktop \ test login \ TMS \ TMS \ bin调用程序集:(未知) . ===日志:此绑定在默认加载上下文中启动 . 日志:使用应用程序配置文件:C:\ Users \ john.john \ Desktop \ test login \ TMS \ TMS \ web.config日志:使用主机配置文件:C:\ Users \ john.john \ Documents \ IISExpress \ config \ aspnet.config日志:使用C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config中的计算机配置文件 . 日志:此时策略未应用于引用(私有,自定义,部分或基于位置的程序集绑定) . 日志:尝试下载新的URL文件:/// C:/Users/john.john/AppData/Local/Temp/2/Temporary ASP.NET Files / root / 2fc69b03 / 2c0137b8 / System.Web.DLL . 日志:尝试下载新的URL文件:/// C:/Users/john.john/AppData/Local/Temp/2/Temporary ASP.NET Files / root / 2fc69b03 / 2c0137b8 / System.Web / System.Web.DLL . 日志:尝试下载新的URL文件:/// C:/Users/john.john/Desktop/test login / TMS / TMS / bin / System.Web.DLL . 日志:尝试下载新的URL文件:/// C:/Users/john.john/Desktop/test login / TMS / TMS / bin / System.Web / System.Web.DLL . 日志:尝试下载新的URL文件:/// C:/Users/john.john/AppData/Local/Temp/2/Temporary ASP.NET Files / root / 2fc69b03 / 2c0137b8 / System.Web.EXE . 日志:尝试下载新的URL文件:/// C:/Users/john.john/AppData/Local/Temp/2/Temporary ASP.NET Files / root / 2fc69b03 / 2c0137b8 / System.Web / System.Web.EXE . 日志:尝试下载新的URL文件:/// C:/Users/john.john/Desktop/test login / TMS / TMS / bin / System.Web.EXE . 日志:尝试下载新的URL文件:/// C:/Users/john.john/Desktop/test login / TMS / TMS / bin / System.Web / System.Web.EXE . 堆栈跟踪:
at System.RuntimeTypeHandle.GetTypeByName(String name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly,
StackCarklMarkHandle stackMark,IntPtr pPrivHostBinder,Boolean loadTypeFromPartialName,ObjectHandleOnStack type)at System.RuntimeTypeHandle.GetTypeByName(String name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMark&stackMark,IntPtrSystem.Web.Compilation的System.Type.GetType(String typeName,Boolean throwOnError,Boolean ignoreCase)处的System.RuntimeType.GetType(String typeName,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMark&stackMark)中的pPrivHostBinder,Boolean loadTypeFromPartialName . System.Web.Configuration.ConfigUtil.GetType(String typeName,String propertyName,ConfigurationElement configElement,XmlNode node,Boolean checkAptcaBit,Boolean ignoreCase)中的BuildManager.GetType(String typeName,Boolean throwOnError,Boolean ignoreCase)InnerException:
在帐户控制器内的以下代码行: -
public ActionResult Login(LoginModel model, string returnUrl)
{MembershipProvider domainProvider;
domainProvider = Membership.Providers["TestDomain1ADMembershipProvider"];
是什么导致了这个错误?
1 回答
对于System.Web的这个声明
版本也需要(4.0对吧?)