Может ли кто-нибудь поделиться кодом для получения сведений о пользователе вместе с миниатюрным изображением, которое будет отображаться на основе ввода SamAccountName
?
Это должно быть выполнено с помощью ASP. NET Core и реагировать. Я новичок в этих технологиях, пожалуйста, помогите.
Мои испытания, как показано ниже
Код контроллера:
public Image ourTeam()
{
var userDetails = db.users.Where(x=>x.saMAccountName == "someUsername").FirstOrDefault();
Image image = GetImage(userDetails.CN); //I get image data
//context.Response.ContentType = "image/jpeg";
var stream = new System.IO.MemoryStream();
if (image != null)
image.Save(stream, ImageFormat.Jpeg);
return image;
}
Код компонента:
import * as React from 'react';
import { RouteComponentProps } from 'react-router';
interface FetchImageDataState {
imageList: ImageData[];
loading: boolean;
}
export class OurTeam extends React.Component<RouteComponentProps<{}>, FetchImageDataState> {
constructor() {
super();
this.state = { imageList: [], loading: true }; //initialize to default
fetch('api/Home/ourTeam')
.then(response => response.json() as Promise<ImageData[]>)
.then(data => {
this.setState({ imageList: data, loading: false });
});
}
public render() {
let contents = this.state.loading
? <p><em>Loading...</em></p>
: this.renderImageTable(this.state.imageList);
return <div>
<h1>Team</h1>
{contents}
</div>;
}
private renderImageTable(imageList: ImageData[]) {
return <div className='table'>{
imageList.map(x =>
<img src={x.byteData} alt={x.CN} />)
}</div>;
}
}
export class ImageData {
CN: string = "";
byteData: string = "";
}
PFB код того, как я аутентифицирую, а затем получаю изображение:
private Image GetImage(string cn)
{
string LDAP_PATH = "LDAP://" + "SOMEPATH.com";
string user = "USERID";
string password = "PASSWORD";
using (DirectoryEntry entry = new DirectoryEntry(LDAP_PATH, user, password))
{
{
DirectorySearcher search = new DirectorySearcher(entry);
search.PropertiesToLoad.Add("sAMAccountName");
search.PropertiesToLoad.Add("distinguishedName");
search.Filter = "(&(objectClass=user)(sAMAccountName=" + cn + "))";
SearchResult result = search.FindOne();
if (result == null)
{
search.Filter = "(&(objectClass=user)(cn=" + cn + "))";
result = search.FindOne();
}
if (result != null)
{
DirectoryEntry entryUser = result.GetDirectoryEntry();
string propertyName = "thumbnailPhoto";
if (entryUser.Properties.Contains(propertyName))
{
byte[] img = entryUser.Properties[propertyName].Value as byte[];
MemoryStream memStream = new MemoryStream(img);
return Image.FromStream(memStream);
}
}
}
}
// User not authenticated
return null;
}