C# 在WPF应用程序中使用WebMatrix.WebData.WebSecurity
我有一个MVC4互联网项目,它使用现成的WebMatrix安全性。向同一应用程序添加WPF前端的需求已经出现。我已经将模型移动到一个单独的DLL中,并开始在相同的实体上构建WPF前端 我遇到的唯一问题是试图与现有的安全模型集成。我在WPF项目的app.config中添加了system.web部分,如下所示:C# 在WPF应用程序中使用WebMatrix.WebData.WebSecurity,c#,wpf,asp.net-mvc,webmatrix,C#,Wpf,Asp.net Mvc,Webmatrix,我有一个MVC4互联网项目,它使用现成的WebMatrix安全性。向同一应用程序添加WPF前端的需求已经出现。我已经将模型移动到一个单独的DLL中,并开始在相同的实体上构建WPF前端 我遇到的唯一问题是试图与现有的安全模型集成。我在WPF项目的app.config中添加了system.web部分,如下所示: <system.web> <membership defaultProvider="SimpleMembershipProvider"> <prov
<system.web>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
</system.web>
现在,当我调用WebSecurity.Login(“用户名”、“密码”)
时,我得到以下错误:
在调用“WebSecurity”类的任何其他方法之前,必须先调用“WebSecurity.InitializeDatabaseConnection”方法。此调用应放在站点根目录下的_AppStart.cshtml文件中
我尝试调用InitializeSimpleMembershipAttribute()代码>在我的WPF应用程序启动时MVC项目附带的代码,但它与上面的错误没有区别
我在网上找不到任何关于如何做到这一点的例子,我会走到死胡同吗
任何帮助都将不胜感激。最后,我决定采取不同的方法,使用WCF身份验证服务在我的不同客户端之间共享,如本文所述
这是一个比试图让WebMatrix直接从WPF项目内部工作更简洁的解决方案 你需要做两件事才能让它起作用
首先在Global.asax.cs中,将其添加到应用程序_Start()的底部
其次,将其添加到Web.config中
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
您可能也需要将其添加到您的服务中
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[AllowAnonymous]
public bool Login(string username, string password)
{
return WebMatrix.WebData.WebSecurity.Login(username, password);
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]