Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF应用程序中使用WebMatrix.WebData.WebSecurity_C#_Wpf_Asp.net Mvc_Webmatrix - Fatal编程技术网

C# 在WPF应用程序中使用WebMatrix.WebData.WebSecurity

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

我有一个MVC4互联网项目,它使用现成的WebMatrix安全性。向同一应用程序添加WPF前端的需求已经出现。我已经将模型移动到一个单独的DLL中,并开始在相同的实体上构建WPF前端

我遇到的唯一问题是试图与现有的安全模型集成。我在WPF项目的app.config中添加了system.web部分,如下所示:

<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)]