基于.net 7.0, 使用Asp.net core web 开发一个登录界面,并连接MongoDB进行用户名和密码的验证,验证失败时在界面显示失败信息,成功时调打开一个新的空白页面NewPage
时间: 2024-05-05 07:22:12 浏览: 13
好,首先需要安装MongoDB.Driver NuGet包,可以在Visual Studio中打开NuGet包管理器搜索并安装。
然后可以创建一个ASP.NET Core Web应用程序,并添加一个Login.cshtml视图和一个LoginController控制器来处理登录请求。以下是一个简单的示例代码:
Login.cshtml:
```
@model LoginViewModel
@{
ViewData["Title"] = "Login";
}
<h2>Login</h2>
@if (ViewBag.ErrorMessage != null)
{
<div class="alert alert-danger">@ViewBag.ErrorMessage</div>
}
<form method="post" asp-action="Login">
<div class="form-group">
<label for="username">Username</label>
<input type="text" id="username" name="username" class="form-control" />
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" id="password" name="password" class="form-control" />
</div>
<button type="submit" class="btn btn-primary">Login</button>
</form>
```
LoginController.cs:
```
using Microsoft.AspNetCore.Mvc;
using MongoDB.Driver;
using System.Threading.Tasks;
namespace YourNamespace.Controllers
{
public class LoginController : Controller
{
private readonly IMongoCollection<User> _users;
public LoginController(IMongoClient mongoClient)
{
var database = mongoClient.GetDatabase("your_database_name");
_users = database.GetCollection<User>("users");
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public async Task<IActionResult> Login(string username, string password)
{
var user = await _users.Find(u => u.Username == username && u.Password == password).FirstOrDefaultAsync();
if (user == null)
{
ViewBag.ErrorMessage = "Invalid username or password.";
return View();
}
return RedirectToAction("NewPage");
}
public IActionResult NewPage()
{
return View();
}
}
}
```
其中,User是一个代表用户的简单实体类,包括用户名和密码属性。在构造函数中,我们从MongoDB中获取用户集合。在Login方法中,我们使用Find方法来查询符合给定用户名和密码的用户。如果找不到用户,我们将一个错误消息添加到ViewBag中,并返回登录视图。如果找到了用户,我们将重定向到NewPage视图。
在NewPage视图中,你可以添加任何你想要的内容。