我有两种类型的用户角色,例如:User&管理员。
我想在登录角色为用户时显示who
链接,但当角色为管理员Update
和update
时,这两个链接都应显示在delete
模块中。
我怎样才能做到这一点?这是我的观点。我希望根据用户角色为view
和update
添加链接。
delete
这里是ADO类的代码,如果我输入admin作为用户名和密码而不是重定向显示数据页面为admin或签入数据库的用户名
@model List<WebApplication5.Models.MyModel>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Show</title>
</head>
<body style="background-color:aliceblue">
<div>
@TempData["Message"]
<b><center>Data Of Table</center></b>
<table style="background-color:azure" border="1" align="center" title="DATA OF EMPLOYEE">
@foreach (var objmymodel in Model)
{
<tr>
<td>@objmymodel.Username</td>
<td>@objmymodel.Password</td>
<td>@Html.ActionLink("delete", "Delete", new {id=@objmymodel.Id })</td>
<td>@Html.ActionLink("update", "Update", new { id = @objmymodel.Id })</td>
</tr>
}
</table>
</div>
<div>@Html.ActionLink("Logout","Login","Mycontroller")</div>
</body>
</html>
这是Controller的代码
public static void Logindata(MyModel objmymodel)
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\nisarg parekh\documents\visual studio 2013\Projects\WebApplication5\WebApplication5\App_Data\Database1.mdf;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework");
con.Open();
if(objmymodel.Username=="admin" && objmymodel.Password=="admin")
{
usernamestring = "admin";
message = "welcome " + objmymodel.Username;
}
else
{
string check = "select Username,Password from tb1 where Username='"+objmymodel.Username+"' and Password='"+objmymodel.Password+"'";
SqlCommand cmd = new SqlCommand(check,con);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
usernamestring = objmymodel.Username;
message ="welcome "+ objmymodel.Username;
}
else
{
message = "FAIL";
}
}
答案 0 :(得分:0)
在这种情况下,您必须遵循以下任务。
- 第一种方法
为您的应用创建角色。 Creating Roles in Asp.net Identity MVC 5
注册时为用户分配角色。 How to assign a Role to a user in MVC5?
- 第二种方法
创建当前节目视图的两个视图(除了这些链接之外的所有剩余数据保持不变)
a. With Update and Delete Link
b. only With Update Link
在控制器中,检查用户名,如果用户是管理员,则渲染第一个视图(a)否则渲染第二个视图(b)。
答案 1 :(得分:0)
您可以在Model中拥有一个属性(HasAdminAccess),并使用它来相应地检查视图和渲染按钮。
<强>型号:强>
public class MyModel
{
// Your other props.
public bool HasAdminAccess { get; set; }
}
控制器/操作:
if (objmymodel.Username == "admin" && objmymodel.Password == "admin") {
usernamestring = "admin";
message = "welcome " + objmymodel.Username;
objmymodel.HasAdminAccess = true;
}
查看:强>
@if (Model.HasAdminAccess)
{
<td>@Html.ActionLink("delete", "Delete", new {id = @objmymodel.Id})</td>
}
<td>@Html.ActionLink("update", "Update", new { id = @objmymodel.Id })</td>
*
当您第一次请求(GET)HasAdminAccess时,会有false并删除 按钮不会被渲染。