1

すぐに使用できるWebMatrixセキュリティを使用するMVC4インターネットプロジェクトがあります。同じアプリケーションにWPFフロントエンドを追加するという要件があります。モデルを別のDLLに移動し、同じエンティティ上にWPFフロントエンドの構築を開始しました。

私が抱えている唯一の問題は、既存のセキュリティモデルと統合しようとしていることです。次のように、system.webセクションをWPFプロジェクトのapp.configに追加しました。

<system.web>
  <membership defaultProvider="SimpleMembershipProvider">
    <providers>
      <clear/>
      <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
    </providers>
  </membership>
</system.web>

電話をかけるWebSecurity.Login("Username", "Password")と、次のエラーが発生します。

「WebSecurity」クラスの他のメソッドを呼び出す前に、「WebSecurity.InitializeDatabaseConnection」メソッドを呼び出す必要があります。この呼び出しは、サイトのルートにある_AppStart.cshtmlファイルに配置する必要があります。

InitializeSimpleMembershipAttribute();WPFアプリケーションの起動時にMVCプロジェクトに付属するコードを呼び出そうとしましたが、上記のエラーに違いはありません。

これを行う方法の例をオンラインで見つけることができません、ここで行き止まりになっていますか?

どんな助けでもいただければ幸いです。

4

3 に答える 3

0

最終的に、この投稿のウォークスルー:ASP.NETアプリケーションサービスの使用で概説されているように、別のアプローチを取り、WCF認証サービスを使用して異なるクライアント間で共有することにしました。

これは、WPFプロジェクト内から直接Webマトリックスを機能させるよりも優れたソリューションでした。

于 2012-11-05T09:20:43.017 に答える
0

これを機能させるには、2つのことを行う必要があります

まずGlobal.asax.csで、これをApplication_Start()の下部に追加します。

    var attr = new MixThread.Web.Filters.InitializeSimpleMembershipAttribute();
    attr.OnActionExecuting(null);

次に、これをWeb.configに追加します

<system.serviceModel>
      <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>

次のように、WCFベースのログインを構築できるはずです。

[AllowAnonymous]
public bool Login(string username, string password)
{
    return WebMatrix.WebData.WebSecurity.Login(username, password);
}
于 2013-04-01T12:50:09.180 に答える
0

これもサービスに追加する必要があるかもしれません。

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
于 2013-12-25T15:55:57.983 に答える