locked
silverlightのビジネスアプリケーションについて RRS feed

  • 質問

  • VS2010でsilverlightビジネスアプリケーションでWindows認証をしたいのですが

    起動するとgetuserが見つからないのメッセージがでます。

    お聞きしたいのですが、

    ①silverlightビジネスアプリケーションでWindows認証をしたいのですが、

     SQL SERVERに接続できる環境が必要ですか?

     AD接続すると思うので、必要ないと思っているのですが。

    言い換えると、IISの統合Windows認証でも、SQL SERVERに接続が必要かということです。

    ②app.xaml.cs内で以下のように

    public App()
            {
                InitializeComponent();

                // WebContext を作成し、ApplicationLifetimeObjects コレクションに追加します。
                // その後、WebContext.Current として使用できるようになります。
                WebContext webContext = new WebContext();
                //webContext.Authentication = new FormsAuthentication();
                webContext.Authentication = new WindowsAuthentication();
                this.ApplicationLifetimeObjects.Add(webContext);
            }

    書き換えているのですが、Windows認証するのに、新規にコードを追加する必要がありますか?

    ③silverlightビジネスアプリケーション内でそのユーザーが認証澄みか?、認証がきれてるかは

    どのように判断するのでしょうか?

    Web.configはWindows認証にしてあります。

    よろしくお願いします。

    2012年8月28日 22:29

すべての返信

  • こんにちは。

    ①についてですが、

    IISにてWindows 統合認証を使用し、かつSilverlight アプリケーションでもメンバシッププロバイダなどを使用する認証を行う理由は何でしょうか?

    ②についてですが、

    IISにて、認証が完了しているのに、Silverlight アプリケーションでユーザが認証済であるか否かを判断する理由(必要性)はなんでしょうか?


    以下は参考までに

    .NET Framework 4 - ASP.NET ASP.NET セキュリティのデータ フロー
    http://msdn.microsoft.com/ja-jp/library/xa68twcb(VS.100).aspx

    • 編集済み Keiichi Oumi 2012年8月29日 1:07 参考追加
    2012年8月29日 1:00
  • 回答ありがとうありがとうございます。

    ①は、できました。

    Web.configで

    以下のようにしたらできました。(getuser()のエラーがでなくなりました)

    <抜粋>

    <system.web>
        ************************************************************************ 

      <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />  ---->A
        <authentication mode="Windows">
        </authentication>
        <authorization>
          <allow roles="AAA\Domain Users" />
          <deny users="*" />
        </authorization>
        <profile enabled ="false"/>                        -------->B
      </system.web>

    Bの行を追加したら、できました。

    初心者ですいません。

    Aの行は、必ず必要ですね?

    ご回答の②は、言い方が悪くてすみません。

    ログイン者の情報を取得したいのです。

    名前とか、IDとか。

    以上よろしくお願いします。

    2012年8月29日 1:38
  • こんにちは。 認証がWindows 認証で、そのあとの承認行為を、認証済のすべてのユーザに許可するのであれば、そもそもroleManager もメンバシッププロバイダも、何も必要ないと思います。これって結局、WEBサイトにログインできればOKって話ですし。ログインアカウントを特定のRoleに結び付けて管理する場合には、authorizationが必要になるって事になると思います。(RoleをADと結び付けて考えるとADへの問い合わせっていう別の話もありますよね) どんな単位でどのような認証・承認をしたいかをはっきりさせるか、WEBサイトへのログイン(Windows認証)だけでよいのか、はっきりさせたほうが良いと思います。書いたできた!だけだと、うーん、大丈夫かなぁ・・って心配が。
    2012年8月29日 2:38