示例#1
0
            public Stream Find(string uri)
            {
                if (!Permissions.CanAccess(typeof(T)))
                {
                    return(Explain("You don't have permission to access: " + typeof(T)));
                }
                var aggs     = Cache.Find(new[] { uri });
                var filtered = Permissions.ApplyFilters(aggs);

                if (filtered.Length == 1)
                {
                    ThreadContext.Response.StatusCode = HttpStatusCode.OK;
                    var cms = ChunkedMemoryStream.Create();
                    var ct  = Serialization.Serialize(filtered[0], ThreadContext.Request.Accept, cms);
                    ThreadContext.Response.ContentType   = ct;
                    ThreadContext.Response.ContentLength = cms.Position;
                    cms.Position = 0;
                    return(cms);
                }
                ThreadContext.Response.StatusCode = HttpStatusCode.NotFound;
                return(Explain("Can't find " + typeof(T).FullName + " with Uri: " + uri));
            }
示例#2
0
        public bool IsAuthenticated(string user, SecureString password)
        {
            var korisnik = Repository.Find(user);

            if (korisnik == null)
            {
                return(false);
            }

            foreach (var @char in korisnik.salt)
            {
                password.AppendChar(@char);
            }

            var sha1    = new SHA1CryptoServiceProvider();
            var sha1Pwd = sha1.ComputeHash(Encoding.UTF8.GetBytes(Marshal.PtrToStringBSTR(Marshal.SecureStringToBSTR(password))));

            if (!korisnik.hashSifra.SequenceEqual(sha1Pwd))
            {
                return(false);
            }

            return(true);
        }