2012-04-24 14 views
1

誰かが持っているいくつかの問題を手助けできますか?私は、いくつかの分野で立ち往生したimit abitという、独自の認証方法を作成しようとしており、何人かが助けてくれることを期待していました。私がお願いしたいまず最初は、私は、コードにコメントしている問題を解決する方法である:それはプロパティのドロップである場合result.Password()byte []に​​はSequenceEqual認証メソッドの定義が含まれていません

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 
    } 

答えて

2

は「法のように使用することはできません」あなたは括弧を追加したためと思われます角括弧result.Password。角括弧を追加すると、実際にはプロパティまたはフィールドのときにコンパイラがメソッド呼び出しとしてコンパイルを試みます。

2番目のエラーは、学生のリストであるstudentsを返そうとしていることです。このメソッドでは戻り値としてstringが必要です。代わりにreturn result.StudentID;を意味しましたか?例外は、キャストをList<Student>からstringにコンパイルする際に失敗した試行の詳細です。

質問の後半にはアドバイスを提供できません。

更新

あなたがbyte[]SequenceEqualと呼ばれる方法を見つけることが期待されています。

using System.Linq;

をお使いのファイルの先頭に:あなたが追加する必要があるかもしれませんので、これは、LINQの拡張メソッドです。

このメソッドに文字列を渡そうとすると、エラーが発生する可能性があります。SequenceEqual(result.Password);

+0

戻り値のAHHHビンゴ。それを解決したStudentID、もし行全体が間違っていれば、括弧を削除すると、 –

+0

それはバイト[]にシーケンスが等しいとは言いませんか?後半は、私が最初のビットを稼働させるかどうかを確かめることができます。ちょうど私の考えを示したかった。 –

+0

@JungleBoogieそれは次のエラーのように聞こえます。私はそれを助けることはできません。問題を示すサンプルで新しい質問を作成します。 –

関連する問題