将vb代码翻译为c#

时间:2013-02-06 10:46:52

标签: c# asp.net vb.net code-translation

我从4guysfromrolla网站获得了一些代码,该代码提供了以另一个具有管理员凭据的用户身份登录的教程。

我的大部分都在工作但是我在将这部分代码从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

如果有人能帮助我翻译,我将不胜感激!这是页面检测用户是否确实是以另一个用户身份登录的管理员的部分,这样我就可以通过编程方式显示一个带有提醒信息的面板。

6 个答案:

答案 0 :(得分: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)
    }
}

答案 1 :(得分:1)

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

我认为其他人都可以。

答案 2 :(得分: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只是一个AND运算符,如果左侧是false,则仅评估左侧(C#中的默认行为)。

要检查对象是否为空,请与null进行比较,并检查某个对象是否属于某种类型,请使用is运算符。

答案 3 :(得分: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)
   }
}

答案 4 :(得分: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)
    }
}

答案 5 :(得分:0)

您要求我们做的主要是教C#

正如我在评论中最初提到的,如果您不确定,请使用转换器。然后,将VB.NET代码与C#的差异进行比较,并查看结构差异。

VB.NET

If True Then
  'Do Stuff
End If

C#

if(true){
 //Do stuff
}

上述差异,condtion包含在()then中,end ifparenthesis替换。你不应该直接拿出代码,阅读它然后进行比较。然后尝试自己重写:)