我从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
如果有人能帮助我翻译,我将不胜感激!这是页面检测用户是否确实是以另一个用户身份登录的管理员的部分,这样我就可以通过编程方式显示一个带有提醒信息的面板。
答案 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 if
被parenthesis
替换。你不应该直接拿出代码,阅读它然后进行比较。然后尝试自己重写:)