-2

管理者の資格情報を持つ別のユーザーとしてログインするためのチュートリアルを提供する 4guysfromrolla Web サイトからのコードがいくつかあります。

私はほとんどの作業を行っていますが、コードのこの部分を VB から C# に変換するのに問題があります。翻訳に苦労している部分は、最初のifステートメントです。

If Page.User.Identity IsNot Nothing AndAlso TypeOf Page.User.Identity Is FormsIdentity Then
   Dim ident As FormsIdentity = CType(Page.User.Identity, FormsIdentity)
   Dim ticket As FormsAuthenticationTicket = ident.Ticket
   Dim AdminUserName As String = ticket.UserData

   If Not String.IsNullOrEmpty(AdminUserName) Then
      'An Admin user is logged on as another user... 
      'The variable AdminUserName returns the Admin user's name
      'To get the currently logged on user's name, use Page.User.Identity.Name
   Else
      'The user logged on directly (the typical scenario)
   End If
End If

誰かがこれを翻訳するのを手伝ってくれたら、とても感謝しています! これは、ユーザーが実際に別のユーザーとしてログインしている管理者であるかどうかをページが検出する部分です。これにより、そのことを知らせるパネルをプログラムで表示できます。

4

6 に答える 6

1

http://converter.telerik.com/から:

if (Page.User.Identity != null && Page.User.Identity is FormsIdentity) {
    FormsIdentity ident = (FormsIdentity)Page.User.Identity;
    FormsAuthenticationTicket ticket = ident.Ticket;
    string AdminUserName = ticket.UserData;

    if (!string.IsNullOrEmpty(AdminUserName)) {
    //An Admin user is logged on as another user... 
    //The variable AdminUserName returns the Admin user's name
    //To get the currently logged on user's name, use Page.User.Identity.Name
    } else {
        //The user logged on directly (the typical scenario)
    }
}
于 2013-02-06T10:50:12.347 に答える
1
if (Page.User.Identity != null && Page.User.Identity is FormsIdentity)
{
    ....
}

残りは大丈夫だと思います。

于 2013-02-06T10:50:32.527 に答える
1
If Page.User.Identity IsNot Nothing AndAlso TypeOf Page.User.Identity Is FormsIdentity Then

だろう

if( Page.User.Identity != null && Page.User.Identity is FormsIdentity )

AndAlso左辺が(C# の既定の動作) である場合にのみ左辺を評価するAND演算子のみです。false

オブジェクトが何もないかどうかを確認するには、 と比較しnull、オブジェクトが型であるかどうかを確認するには、演算子を使用しisます。

于 2013-02-06T10:51:34.100 に答える
0

どうですか

if (Page.User.Identity != null && Page.User.Identity is FormsIdentity)
{
   var ident = (FormsIdentity)Page.User.Identity;
   var ticket  = ident.Ticket;
   var AdminUserName = ticket.UserData;

   if (!String.IsNullOrEmpty(AdminUserName))
   {
      'An Admin user is logged on as another user... 
      'The variable AdminUserName returns the Admin user's name
      'To get the currently logged on user's name, use Page.User.Identity.Name
   }
   else
   {
      'The user logged on directly (the typical scenario)
   }
}
于 2013-02-06T10:51:28.103 に答える
0

ただし、Stackoverflow は翻訳サービスではありません...

var fIdent = User.Identity as FormsIdentity;
if(fIdent != null)
{
    string adminUserName = fIdent.Ticket.UserData;
    if(!String.IsNullOrEmpty(adminUserName))
    {
        // an Admin user is logged on as another user... 
    }
    else
    {
        // the user logged on directly (the typical scenario)
    }
}
于 2013-02-06T10:52:28.917 に答える
0

あなたが私たちに求めているのは、本質的に教えることC#です。

コメントで最初に述べたように、不明な場合はコンバーターを使用してください。ただし、その後、VB.NETコードの違いを自分のものと比較しC#、構造上の違いを確認してください。

VB.NET

If True Then
  'Do Stuff
End If

C#

if(true){
 //Do stuff
}

上記の違いは、条件が and で囲まれ()thenandend ifが に置き換えられparenthesisます。コードをそのまま取り出して読んでから比較するだけではいけません。次に、自分で書き直してみてください:)

于 2013-02-06T10:53:43.450 に答える