none
loginnameコントロールの参照方法について RRS feed

  • 質問

  • login コントロールにおいて

    ユーザー名とパスワードを入力し(ここではユーザー名山田花子とします。)

    ログイン後、違うサイトにアクセスするという原理です。

    その遷移後のサイトにて

    loginnameコントロールに ユーザー名が入力されるという仕組みです。

    しかしloginnameにはtextのプロパティがなくここでの山田花子というテキストを利用できません。

    loginコントロールにはユーザー名を参照できるプロパティがあり、山田花子という値をLogin1.UserNameで利用できます。

    しかし遷移しているのでLogin1を参照することはできません。loginnameの値を取得するにはどうすればいいのでしょうか?

    イメージとしては

    label1.text=loginnameみたいなことをやりたいです。

    解りにくい質問内容だと思いますがよろしくお願いします。

    2014年2月10日 4:25

回答

  • ケース2のようにサイトが異なる場合、通常はログインの状態を引き継ぐことはできません。

    #IIS上での設定によっては可能ですが、開発用のサーバーでは無理だったはずなので、開発環境での検証ができないかと。

    まぁ、まずはログイン状態を引き継げるようにすることが必要になります。
    そのうえで、ユーザー名はコントロールからしか取り出せないものではありません。
    Pageクラス内であれば User.Identity.Name で取り出せるはず。

    ということでコントロールを使わないで解決する方法を考えてみてください。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)

    • 回答としてマーク kirua777 2014年2月13日 0:52
    2014年2月12日 5:31

すべての返信

  • ご自分の環境(OS, IIS, .NET, Visual Studio のバージョン、使っているブラウザが何かなど)ぐらいの情報は一番最初に書けませんか?

    > ログイン後、違うサイトにアクセスするという原理です。

    認証方式は何か、「違うサイト」とは具体的にどう違うのか、掲示板に書いてあること以外あなたの環境・状況等は何も知りえない質問者が分かるように書けませんか?


    > 解りにくい質問内容だと思いますがよろしくお願いします。

    そういう認識をお持ちなら、どういう情報を提供すれば回答者にあなたの問題を理解してもらえるか、もっとよく考えて質問を書いていただくようお願いします。


    • 編集済み SurferOnWww 2014年2月10日 5:10 誤字訂正
    2014年2月10日 5:10
  • vs2012  for webを使用しています。

    > ログイン後、違うサイトにアクセスするという原理です。とはhttp://XXXXX/wwwroot/default2.aspxからhttp://XXXXX/wwwroot/default3.aspxへ遷移するという意味です。

    2014年2月10日 6:21
  • 回答者の(少なくとも私の)質問にきちんと答える気はないように見えます。そうでなければもう一度私の質問をよく読んできちんと回答してください。

    2014年2月10日 10:37
  • こんにちは。

    "異なるサイト"という表現で少し、混乱を招きそうな感じなので少し整理すると良いと思うのですが、例えば下記でいえばどちらを想定しておられますか?

     

    【ケース1:同一のWebアプリケーション内で別のページに遷移する】
    -http://website1/App1/WebForm1.aspx (Loginコントロールを配置)
    -http://website1/App1/WebForm2.aspx (LoginNameコントロールを配置)

    【ケース2:別のWebアプリケーションのページに遷移する(仮想ディレクトリやサイトが異なる)】
    -http://website1/App1/WebForm1.aspx (Loginコントロールを配置)
    -http://website1/App2/WebForm1.aspx (LoginNameコントロールを配置)

    上記のケース1とケース2、どちらが想定されている状況でしょうか。
    それとも、これらと全く違うものを想定しておられますか?


    きよくらならみ

    2014年2月11日 0:52
  • すみません

    ケース2の方です

    ケース2で改善が難しいなら

    ケース1のようなサイトを作り改善したいです。

    2014年2月12日 1:03
  • ケース2のようにサイトが異なる場合、通常はログインの状態を引き継ぐことはできません。

    #IIS上での設定によっては可能ですが、開発用のサーバーでは無理だったはずなので、開発環境での検証ができないかと。

    まぁ、まずはログイン状態を引き継げるようにすることが必要になります。
    そのうえで、ユーザー名はコントロールからしか取り出せないものではありません。
    Pageクラス内であれば User.Identity.Name で取り出せるはず。

    ということでコントロールを使わないで解決する方法を考えてみてください。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)

    • 回答としてマーク kirua777 2014年2月13日 0:52
    2014年2月12日 5:31
  • > ケース2のようにサイトが異なる場合、通常はログインの状態を引き継ぐことはできません。

    Kiyokura さんが書かれた例では、ケース2は、サイトではなく、アプリケーションが違うということのようです。であれば可能なはずです。

    アプリケーション間のフォーム認証
    http://msdn.microsoft.com/ja-jp/library/eb0zx8fc(VS.90).aspx

    ただ、質問者さんがケース2はサイトではなく、アプリケーションの違いということを理解されて「ケース2の方です」と答えてているかどうかは分かりませんが。


    • 編集済み SurferOnWww 2014年2月12日 6:44 不具合訂正
    2014年2月12日 6:43
  • ありがとうございます。

      Label2.Text = User.Identity.Nameにて改善しました。

    2014年2月13日 0:53
  • > Label2.Text = User.Identity.Nameにて改善しました。

    それで、先のレスで紹介した記事「アプリケーション間のフォーム認証」の処置をせず、遷移先で取得できるのなら、遷移先は別サイトでも別アプリケーションでもなく、別ページ(Kiyokura さんが例であげた【ケース1】)のはずです。

    何故、その前のあなたのレスで、
     
    > ケース2の方です

    答えたのですか?

    そのあたりを、回答者およびここに参加している閲覧者のみなさんにきちんと説明するのが、ここに参加する人の義務・・・とまでは言いませんが、少なくとも一般社会での常識的なマナーの範囲だと思いますよ。


    • 編集済み SurferOnWww 2014年2月13日 3:05 誤記訂正
    2014年2月13日 3:05