WPF登录验证

先是调用出我们的员工管理账号,查出这些表里的所有员工数据,接着用where查出我们需要的登录账号和密码,然后再给账号和密码声明一个变量,这样便可以在数据库中查出我们的登录数据了。接着便去服务端传递我们需要传递的数据,先给一个服务契约,然后给我们需要的数据传递参数,也就是我们需要的账号和密码这两条数据。
在这里插入图片描述
在这里插入图片描述
当成功写完服务端后,我们便可以写客户端给登录进行验证和判断了,首先获取页面的名称,当获取名称后,接着便是利用tostring来进行转换。然后便是使用DataTable来返回你在所查询出的数据,然后用if来判断,如过dt.row.count总行数是否返回数据,那就是大于0,便是返回有数据,那么则验证成功,当验证成功后,便会主动的跳转主页面,接着也可以将登陆的账号的姓名和用户等绑定在页面上。然后用一个Close给登录页码一个当成功跳转后就自动关闭登录页面的。当DataTable没有返回数据,那么便会显示账号或密码错误。
在这里插入图片描述

WPF 登录验证方式中,滑动拼图是一种常见的实现方式,通常被用于防止机器人或者恶意攻击。 实现滑动拼图的基本思路如下: 1. 在登录页面上添加一个滑块组件,包含一个滑块和一个拼图区域。 2. 当用户登录时,需要先通过输入用户名和密码进行身份验证验证通过后,显示滑块组件。 3. 用户需要按住滑块,将其拖动到正确的位置,使得拼图区域中的图片与滑块上的图片完全重合。 4. 当滑块被拖动到正确的位置时,将用户的登录信息提交给服务器进行验证。 下面是实现滑动拼图的示例代码: ```xml <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!-- 用户名和密码输入框 --> <StackPanel Grid.Row="0"> <TextBox Name="txtUsername" Margin="10" Width="200" PlaceholderText="Enter username"/> <PasswordBox Name="txtPassword" Margin="10" Width="200" PlaceholderText="Enter password"/> <Button Name="btnLogin" Content="Login" Click="btnLogin_Click" Margin="10"/> </StackPanel> <!-- 滑块组件 --> <Grid Grid.Row="1" Margin="10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <!-- 拼图区域 --> <Image Name="imgPuzzle" Stretch="Fill" Source="puzzle.jpg" Grid.Column="0"/> <!-- 滑块 --> <Canvas Name="canvasSlider" Width="100" Height="100" Grid.Column="1"> <Image Name="imgSlider" Stretch="Fill" Source="slider.jpg"/> </Canvas> </Grid> </Grid> ``` ```csharp private bool _isSliding; private Point _startPoint; private void canvasSlider_PointerPressed(object sender, PointerRoutedEventArgs e) { _isSliding = true; _startPoint = e.GetCurrentPoint(canvasSlider).Position; } private void canvasSlider_PointerMoved(object sender, PointerRoutedEventArgs e) { if (_isSliding) { Point currentPoint = e.GetCurrentPoint(canvasSlider).Position; double distance = currentPoint.X - _startPoint.X; if (distance >= 0 && distance <= imgPuzzle.ActualWidth - canvasSlider.ActualWidth) { Canvas.SetLeft(canvasSlider, distance); } } } private void canvasSlider_PointerReleased(object sender, PointerRoutedEventArgs e) { _isSliding = false; if (Canvas.GetLeft(canvasSlider) == imgPuzzle.ActualWidth - canvasSlider.ActualWidth) { // 验证通过,提交登录信息 string username = txtUsername.Text; string password = txtPassword.Password; // TODO: 提交登录信息 } else { // 验证失败,重置滑块位置 Canvas.SetLeft(canvasSlider, 0); } } ``` 在代码中,我们使用了 PointerPressed、PointerMoved 和 PointerReleased 事件来实现滑块的拖动,并在 PointerReleased 事件中进行验证。当滑块被拖动到正确的位置时,我们可以提交用户的登录信息给服务器进行验证。否则,重置滑块位置并提示用户验证失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值