- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
任何人都可以帮助解决我遇到的一些问题。我正在尝试创建一种自制的身份验证方法,我有点卡在几个方面,希望有人能提供帮助。我首先想问的是如何解决我在代码中评论的问题:
public string Authentication(string studentID, string password)
{
var result = students.FirstOrDefault(n => n.StudentID == studentID);
//find the StudentID that matches the string studentID
if (result != null)
//if result matches then do this
{
//----------------------------------------------------------------------------
byte[] passwordHash = Hash(password, result.Salt);
string HashedPassword = Convert.ToBase64String(passwordHash);
//----------------------------------------------------------------------------
// take the specific students salt and generate hash/salt for string password (same way student.Passowrd was created)
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
byte[] UserPassword = enc.GetBytes(HashedPassword);
UserPassword.SequenceEqual(result.Password); // byte[] does not contain a definition for SequenceEqual?
//check if the HashedPassword (string password) matches the stored student.Password
}
return result.StudentID;
//if string password(HashedPassword) matches stored hash(student.Passowrd) return student list
//else return a message saying login failed
}
最佳答案
“不能像方法一样使用”可能是因为您添加了方括号:result.Password()
如果它是属性,请去掉括号 result.Password
.添加括号会使编译器尝试将其编译为方法调用,而实际上它是一个属性或字段。
第二个错误是您试图返回 students
,这是一个学生列表。该方法需要 string
作为返回值。你是不是想改为 return result.StudentID;
?异常详细说明了从 List<Student>
编译类型转换的失败尝试至 string
.
我无法就您问题的后半部分提供任何建议。
更新
您应该找到一个名为 SequenceEqual
的方法在 byte[]
.这是一个 Linq 扩展方法,因此您可能需要添加:
using System.Linq;
到文件的顶部。
然后您可能会在尝试将字符串传递给此方法时遇到错误:SequenceEqual(result.Password);
.
关于c# - byte[] 不包含 SequenceEqual 身份验证方法的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294817/
在下面的代码中调用 SequenceEqual当 List 是用类泛型类型定义的(调用 EquatableClass.Equals<>)时,在泛型列表上返回 true(如预期的那样)。 如果列表定义为
我使用 c# 3.5 和 linq 编写了一个简单的程序。 我有课 public class Product { public Product() { } public
我在进行彩票模拟,我有 2 个不同的数组,其中包含 6 个数字,首先保存用户希望玩的数字,其次保存每次运行生成的数字。 用户将他们的数字输入文本框,并将其保存为字符串并放入数组中的相应位置,随机生成的
父类型: public class IdObject : IComparable, IEquatable { public int id { get; set; } public bo
我有两个 List我正在使用 SequenceEqual方法来确定它们是否匹配。 我现在需要一个 List, string, IEnumerable,失败的元素的任何索引。 有没有简单的方法? 谢谢
我有一个名为 Country 的类。它有公共(public)成员“CountryName”和“States”。 我已经声明了一份国家名单。 现在我想编写一个函数,它接受一个新的“国家”并确定 Coun
在 C# 中,是否有 IEqualityComparer使用 SequenceEqual判断是否相等的方法? 最佳答案 .NET Framework 中没有这样的比较器,但您可以创建一个: publi
任何人都可以帮助解决我遇到的一些问题。我正在尝试创建一种自制的身份验证方法,我有点卡在几个方面,希望有人能提供帮助。我首先想问的是如何解决我在代码中评论的问题: public string A
我正在编写一个简单的控制台应用程序来比较自定义类对象的两个实例。对于每个属性,我将 True 或 False 写入控制台窗口以显示每个对象的属性是否匹配。 某些属性,如 ProductLines(列表
我有以下 LINQ 语句(stationId 是一个 int 而 version 是一个字节数组): var foundStation = (from wd in _Conte
为什么Enumerable.SequenceEqual将其比较器视为 IEqualityComparer ?该算法似乎没有使用 GetHashCode .为什么不取一个 Func谓词,类似于 Firs
我一直在尝试实现 Set 相等性(即顺序不相关的列表比较),并在阅读了诸如 this 之类的问题之后和 this ,编写了以下简单扩展: public static bool SetEqual
我一直在尝试实现 Set 相等性(即顺序不相关的列表比较),并在阅读了诸如 this 之类的问题之后和 this ,编写了以下简单扩展: public static bool SetEqual
我很难弄清楚 SequenceEqual 在 Reactive Extensions 2.2.5 版中是如何工作的 下面是代码 var subject1 = new Subject();
有人能解释一下为什么我会得到不同的结果吗? bool result = true; for (int row = 0; row < State.Rows; row++) { for (int
我正在尝试使用以下逻辑检查字符串是否为回文的可能性 class Program { static void Main(string[] args) { Console.
我正在尝试使用 Enumerable.SequenceEqual(x,y) 因为我希望它基于Object.Equals(x,y) 方法,如果 x 或 y 为 null,则返回 false,如果两者均为
我正在尝试使用 Type.GetMethod(...) 获取 Enumerable.SequenceEqual 的 MethodInfo。到目前为止,我已经尝试了以下方法: var mi = type
来自 MSDN The SequenceEqual(IEnumerable, IEnumerable) method enumerates the two source sequences in pa
我有 2 个数组: int[] arr1 = new int[] { 1, 2, 3 }; int[] arr2 = new int[] { 1, 2, 3 }; 我需
我是一名优秀的程序员,十分优秀!